package com.zt.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zt.entity.AdminLog;

import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

/**
 * 管理员操作日志服务接口
 * @author 周明震
 * @date 2025/7/21
 */
public interface AdminLogService extends IService<AdminLog> {
    
    /**
     * 记录操作日志
     */
    void saveLog(AdminLog adminLog);
    
    /**
     * 记录操作日志（简化版）
     */
    void saveLog(Integer adminId, String adminUsername, String module, String operation, 
                 String description, String method, String url, String params, 
                 String result, Integer status, String errorMsg, String ip, 
                 String userAgent, Long executeTime);
    
    /**
     * 分页查询操作日志
     */
    IPage<AdminLog> getLogPage(int pageNum, int pageSize, Map<String, Object> params);
    
    /**
     * 根据条件查询日志列表
     */
    List<AdminLog> getLogList(Map<String, Object> params);
    
    /**
     * 获取日志统计信息
     */
    Map<String, Object> getLogStats(LocalDateTime startTime, LocalDateTime endTime);
    
    /**
     * 清理过期日志
     */
    int cleanExpiredLogs(int days);
    
    /**
     * 导出日志数据
     */
    List<AdminLog> exportLogs(Map<String, Object> params);

    /**
     * 清空所有日志
     */
    void clearAllLogs();
}
